#pragma once
#include "base/core/singleton.h"
#include "Common/ComTypeDefine.h"
#include "Common/CharacterDefine.h"

class ReliveMgr : public ManualSingleton < ReliveMgr >
{
	friend class ManualSingleton < ReliveMgr >;
public:
	ReliveMgr();
	~ReliveMgr();
	bool Init(); 
	void UnInit();
public:
	//流放之地死亡复活信息
	bool GetBanishReliveInfo(uint32_t curMapId, uint32_t curSceneId, Point3<float> curPos, int32_t camp, uint32_t pkValue, uint32_t &reliveMapId, uint32_t &reliveSceneId, Point3<float> &relivePos);
	//死亡复活信息
	bool GetDeadReliveInfo(uint32_t curMapId, uint32_t curSceneId, Point3<float> curPos, int32_t camp, uint32_t &reliveMapId, uint32_t &reliveSceneId, Point3<float> &relivePos);
	//获取复活信息
	bool GetDeadReliveInfoEx(uint32_t curMapId, uint32_t curSceneId, Point3<float> curPos, int32_t camp, uint32_t pkValue, uint32_t &reliveMapId, uint32_t &reliveSceneId, Point3<float> &relivePos);
	//获取地图复活点坐标 reliveMapId:复活地图ID,curPos:角色当前的坐标，camp：阵营
	Point3<float> GetMapRelivePos(uint32_t reliveMapId, Point3<float> curPos, int32_t camp);
};
#define g_MakeReliveMgr() (ReliveMgr::Instance())
#define g_GetReliveMgr()  (ReliveMgr::GetInstance())
#define g_DelReliveMgr()  (ReliveMgr::Destroy())


